1. Field of the Invention
The present invention relates to a method, system, and program for updating registry objects with a cross-platform installation program and, in particular using native operating system commands to update the registry object.
2. Description of the Related Art
An installer program is a software program that enables a programmer to write specific code to install a given application program onto the drives of a computer in a way that enables the given application program to work correctly with the computer""s environment, including its operating system. There are several types of installersxe2x80x94Java installers and operating system specific installers, e.g., Microsoft Windows installers, and International Business Machines (xe2x80x9cIBMxe2x80x9d) OS/2 and AIX operating system installers, etc. Many of the install programs existing today have various limitations in their functionality as discussed below.
One type of Java installer is provided by a software company known as InstallShield. Currently, the functionality and configurability of this Java installer is somewhat limited. For example, the Java installer provides default panels, but the text cannot be changed or configured. Also, this Java installer is not easy to customize. In other words, a programmer cannot easily add a function that is not provided by the installer program. In addition, the current Java installer provides only limited registry support. A registry is a central repository for all possible information for the computer such as hardware configurations and software settings, etc. The registry maintains information on installed components. A programmer or user can access the registry to determine information about installed products, based upon what the user/programmer placed into the registry or what information is useful to the user. Presently, the Java installer only works with a Microsoft Windows"" registry; and the support provided with Microsoft Windows is limited. For example, the current Java installer does not enable the Windows"" system registry to be updated directly. Instead, the keys to update in the registry are in a file which must be imported into the registry through a system call. It would be desirable if such a Java installer program supported multiple directories, splash screens (which are images that come up while a software product is being installed), and multiple languages instead of only English. Furthermore, it would be desirable for a given installer program to be more broadly applicable to other environments and operating systems. Although InstallShields"" Java installer is tailored to Java, it is also geared somewhat for the Windows"" operating system as discussed above in terms of the Windows"" registry support provided. However, it does not provide specific support for other operating systems such as the IBM OS/2 and AIX operating systems.
Another Java installer is called xe2x80x9cInstall Anywherexe2x80x9d from ZeroG. This Java installer program also has a default panel that is not configurable, e.g., the order in which panels appear is not customizable. Likewise, registry support is limited. A user/programmer updates a registry from a file using a xe2x80x9creg_editxe2x80x9d command. Although this installer program enables a user/programmer to add a few items into the registry, the registry cannot be queried. In addition, other registry functional features are not available. Likewise, there is no multiple directory support, and no national language support. Also, it does not support multiple operating systems, i.e., there is no OS/2 or AIX specific support.
Another approach would be to provide install APIs for Java. However, this approach is not yet available.
With respect to operating system specific installers, InstallShield provides a Microsoft Windows"" 32 installer, e.g., Microsoft Windows 95/98 and NT. Although this installer program is widely used throughout the industry, it is based upon a proprietary scripting language developed by InstallShield. The scripting language is similar to Basic programming language. Programmers, who generally have experience and knowledge of object oriented programs such as C++ and Java, must learn this proprietary InstallShield script, which is not related to the popular computer languages, in order to program an Install program. This unfamiliarity with the proprietary InstallShield scripting language complicates the installer programming process.
One impediment to developing a cross-platform installation program is that each operating system has its own native installation program that utilizes specific file formats including the file sets to install and specific native commands for updating operating system specific data structures. Such operating system specific data structures include product registry database files that maintain information on installed components and computer products. The operating system utilizes this system information when performing certain functions with respect to the installed components. For instance, the IBM AIX operating system includes an object data manager (ODM) that stores system information and manages data for application programs. The ODMs include device configuration information, vital product data for installation and update procedures, communications configuration information, and system resource information.
The AIX installation program, which is called with the xe2x80x9cinstallpxe2x80x9d command, installs a base level program or computer product, referred to as a fileset, and updates previous versions. As part of the installation process, the installp command will update the AIX ODM product registry to include information on the installed components. The installp and ODM aspects of AIX are described in IBM publication xe2x80x9cAIX Version 4.3 General Programming Concepts: Writing and Debugging Programs,xe2x80x9d IBM publication no. SC23-4128 (IBM Copyright 1997), which publication is incorporated herein by reference in its entirety. Other operating systems include similar native product registries, files or databases and native installation commands to install and uninstall products and update information in the native product registry.
Thus, there is a need in the art for a cross-platform installation program that is capable of installing and uninstalling a product on different operating systems and, at the same time, is capable of performing the necessary updating of operating system native product registries and other such registry databases and files.
To overcome the limitations in the prior art described above, preferred embodiments disclose a system, method, and program for updating a registry object during the installation of a computer program on a computer system. The operating system includes an installation program that updates the registry object during installation of the computer program on the computer system. The registry object and installation program are operating system specific. During execution of the program, a call is made to a cross-platform installation program. The cross-platform installation program is capable of installing the computer program on different operating system platforms. The cross-platform installation program installs the installed components for the computer program on the computer system. The cross-platform installation program further makes a call to an operating system interface program specific to the operating system on which the computer program is being installed. Execution of this operating system interface program updates at least one field in the registry object with information on the installed components of the computer program being installed.
In further embodiments, the registry object is a product registry database including information on installed files. The operating system product registry database is updated by making a call to a native operating system command to update fields in the product registry database with information on the installed components.
In further embodiments, a registry object is updated during the uninstallation of a computer program. The operating system includes an uninstallation program that removes installed components of an installed computer program from the computer system and updates the registry object during the uninstallation of the computer program from the computer system. The program makes a call to a cross-platform uninstallation program that is capable of removing the computer program from different operating system platforms. The cross-platform uninstallation program removes the installed components of the installed computer program. The cross-platform uninstallation program further calls an operating system interface program specific to the operating system on the computer system from which the computer program is being uninstalled. The operating system interface program removes information on the installed components removed from the computer system from the registry object.
Preferred embodiments provide the use of a cross-platform installation and uninstallation program that utilize the same installation package across operating systems. Thus, the operating system specific installation packages do not need to be created for each operating system on which the product will be installed. Preferred embodiments update operating system specific files, such as product registry objects, by making a call to an operating system interface program including native operating system commands. The operating system interface program uses native operating system commands to makes the same changes to the product registry object that the operating system installation or uninstallation program would make. Thus, the effect of installation by the cross-platform installation program or the native operating system installer is the same. In this way, the product registry object and other operating system specific files would include the necessary information on products and installed components using the cross-platform programs.